<?php
/**
 * Map24AuthenticationService class file
 * 
 * @author    {author}
 * @copyright {copyright}
 * @package   {package}
 */

/**
 * RequestHeader.CustomerKeyValuePair class
 */
if ( !class_exists('RequestHeaderCustomerKeyValuePair') )
{
require_once 'RequestHeader.CustomerKeyValuePair.php5';
}
/**
 * ResponseHeader class
 */
if ( !class_exists('ResponseHeader') )
{
require_once 'ResponseHeader.php5';
}
/**
 * Map24Maplet class
 */
if ( !class_exists('Map24Maplet') )
{
require_once 'Map24Maplet.php5';
}
/**
 * Map24ApplicationState class
 */
if ( !class_exists('Map24ApplicationState') )
{
require_once 'Map24ApplicationState.php5';
}
/**
 * Property class
 */
if ( !class_exists('Property') )
{
require_once 'Property.php5';
}
/**
 * GetMap24ApplicationResponse class
 */
if ( !class_exists('GetMap24ApplicationResponse') )
{
require_once 'GetMap24ApplicationResponse.php5';
}
/**
 * RequestHeader class
 */
if ( !class_exists('RequestHeader') )
{
require_once 'RequestHeader.php5';
}
/**
 * LogMap24ApplicationRequest class
 */
if ( !class_exists('LogMap24ApplicationRequest') )
{
require_once 'LogMap24ApplicationRequest.php5';
}
/**
 * Map24ApplicationRequest class
 */
if ( !class_exists('Map24ApplicationRequest') )
{
require_once 'Map24ApplicationRequest.php5';
}
/**
 * LogResponse class
 */
if ( !class_exists('LogResponse') )
{
require_once 'LogResponse.php5';
}
/**
 * LogRequest class
 */
if ( !class_exists('LogRequest') )
{
require_once 'LogRequest.php5';
}
/**
 * LogMap24PageImpressionResponse class
 */
if ( !class_exists('LogMap24PageImpressionResponse') )
{
require_once 'LogMap24PageImpressionResponse.php5';
}
/**
 * LogMap24PageImpressionRequest class
 */
if ( !class_exists('LogMap24PageImpressionRequest') )
{
require_once 'LogMap24PageImpressionRequest.php5';
}
/**
 * LogMap24ApplicationResponse class
 */
if ( !class_exists('LogMap24ApplicationResponse') )
{
require_once 'LogMap24ApplicationResponse.php5';
}
/**
 * CheckMap24MobileClientVersionResponse class
 */
if ( !class_exists('CheckMap24MobileClientVersionResponse') )
{
require_once 'CheckMap24MobileClientVersionResponse.php5';
}
/**
 * CheckMap24MobileClientVersionRequest class
 */
if ( !class_exists('CheckMap24MobileClientVersionRequest') )
{
require_once 'CheckMap24MobileClientVersionRequest.php5';
}
/**
 * CheckSessionResponse class
 */
if ( !class_exists('CheckSessionResponse') )
{
require_once 'CheckSessionResponse.php5';
}

/**
 * Map24AuthenticationService class
 * 
 *  
 * 
 * @author    {author}
 * @copyright {copyright}
 * @package   {package}
 */
class Map24AuthenticationService {

  private $client;

  private $wsdl = null;

  /**
   *
   * @param MapTP-System the request should be executed on $server
   * @param Map24Id $mid
   * @param Map24SessionId $sid
   */ 
  public function __construct($server=null, $mid=null, $sid=null, $interface='map24/webservices1.5') {
    if($server==null || $mid==null || $sid==null){
      echo "ERROR: Not enough or invalid arguments! Unable to initialise SoapClient.";
    }
    else {
      $this->wsdl = "http://".$server."/".$interface."?wsdl=Map24AuthenticationService";
      $this->client = new SoapClient($this->wsdl, array('location' => "http://".$server."/".$interface."?soap=Map24AuthenticationService&mid=".$mid."&sid=".$sid, 'trace' => 0, 'exceptions' => 1));
    }
  }

  /**
   *  
   *
   * @param RequestHeader $RequestHeader
   * @param Map24ApplicationRequest $GetMap24ApplicationRequest
   * @return GetMap24ApplicationResponse
   */
  public function getMap24Application(RequestHeader $RequestHeader, Map24ApplicationRequest $GetMap24ApplicationRequest) {
    return $this->client->getMap24Application($RequestHeader, $GetMap24ApplicationRequest);
  }

  /**
   *  
   *
   * @param RequestHeader $RequestHeader
   * @param LogRequest $LogRequest
   * @return LogResponse
   */
  public function log(RequestHeader $RequestHeader, LogRequest $LogRequest) {
    return $this->client->log($RequestHeader, $LogRequest);
  }

  /**
   *  
   *
   * @param RequestHeader $RequestHeader
   * @param LogMap24PageImpressionRequest $LogMap24PageImpressionRequest
   * @return LogMap24PageImpressionResponse
   */
  public function logMap24PageImpression(RequestHeader $RequestHeader, LogMap24PageImpressionRequest $LogMap24PageImpressionRequest) {
    return $this->client->logMap24PageImpression($RequestHeader, $LogMap24PageImpressionRequest);
  }

  /**
   *  
   *
   * @param RequestHeader $RequestHeader
   * @param LogMap24ApplicationRequest $LogMap24ApplicationRequest
   * @param Map24ApplicationRequest $Map24ApplicationRequest
   * @return LogMap24ApplicationResponse
   */
  public function logMap24Application(RequestHeader $RequestHeader, LogMap24ApplicationRequest $LogMap24ApplicationRequest, Map24ApplicationRequest $Map24ApplicationRequest) {
    return $this->client->logMap24Application($RequestHeader, $LogMap24ApplicationRequest, $Map24ApplicationRequest);
  }

  /**
   *  
   *
   * @param RequestHeader $RequestHeader
   * @param CheckMap24MobileClientVersionRequest $CheckMap24MobileClientVersionRequest
   * @return CheckMap24MobileClientVersionResponse
   */
  public function checkMap24MobileClientVersion(RequestHeader $RequestHeader, CheckMap24MobileClientVersionRequest $CheckMap24MobileClientVersionRequest) {
    return $this->client->checkMap24MobileClientVersion($RequestHeader, $CheckMap24MobileClientVersionRequest);
  }

  /**
   *  
   *
   * @param RequestHeader $RequestHeader
   * @return CheckSessionResponse
   */
  public function checkSession(RequestHeader $RequestHeader) {
    return $this->client->checkSession($RequestHeader);
  }

}

?>
